Ein einfacher Bericht

Aufgabe eines Berichts (engl. report) ist die Datenausgabe auf den Bildschirm oder einen Drucker. Ähnlich wie ein Formular bezieht ein Bericht seine Daten aus einer Basistabelle, einer QBE- oder SQL-Abfrage- oder einem VBA-Unterprogramm. Die Daten werden in Steuerelementen, vor allem in Bezeichnungs- und Textfeldern, formatiert. Im Gegensatz zu einem interaktiven Formular involviert der Bericht aber den Benutzer kaum. Eine anschauliche Einführung in Aufbau, Funktion und Datenherkunft von Berichten erhalten Sie im Access-Hilfethema Berichte.

Daten filtern und sortieren ist in Berichten und Formularen möglich. Die Gruppierung von Datensätzen erlaubt hingegen nur ein Bericht. Ein einfache Einführung bietet das Hilfethema Datensätze gruppieren.

Wer die Datensätze eines Berichts gruppiert ausgeben möchte, geht wie folgt vor:

  1. Er wählt das Gruppierungsmerkmal, zum Beispiel den Fragenschlüssel.

  2. Er bestimmt die Ausgabereihenfolge des Gruppierungsmerkmals, zum Beispiel eine aufsteigende Reihenfolge.

  3. Er stellt die Gruppierungseigenschaften ein:
    a) Gruppenkopf (engl. header) und/oder Gruppenfuss (engl. footer)
    b) Gruppenbruch (Soll der Seitenumbruch die Gruppe auf verschiedene Seiten spalten?)

Bei der Berichtgestaltung spielen Bereiche (engl. sections) eine wichtige Rolle. Im Formular 3. Testantworten eingeben gelangen Sie mit einem Klick auf die Schaltfläche 'Zuordnungsergebnisse' zur Anzeige des Berichts 'Ergebnisse der Zuordnungsaufgaben'. Dieser Bericht enthält die folgenden Bereiche:

Der obigen Abbildung entspricht die folgende Entwurfssicht:


Der Bericht enthält neben Bezeichnungsfeldern die folgenden Textfelder:

Das Textfeld konkatenierteLösungen stammt mittelbar aus der Datenherkunft QryZOErgebnisse und ursprünglich aus der Tabelle TmpKonkatZOLösungen. Diese temporäre Tabelle wird jedesmal vor dem Öffnen des Berichts erstellt, weil es nicht möglich ist, neben die Spalte Teilnehmerlösung eine Spalte Musterlösung so zu stellen, dass jedem Teilnehmer-Zuordnungspaar ein Muster-Zuordnungspaar entspricht. Die Ereignisprozedur Report_Open konkateniert deshalb alle Musterlösungen eines Fragenschlüssels zu einer Zeichenkette, die im Bericht im Kopfbereich der Gruppe Fragenschlüssel erscheint.

Wenn Sie den Bericht in der Entwurfsansicht öffnen (»Ansicht/Entwurfsansicht) und aus dem Ereignis Öffnen des Eigenschaftenfensters (»Alt/Enter) die Ereignisprozedur Report_Open anzeigen, sehen Sie den umfangreichen Quellcode. Wir fassen deshalb die Logik von Report_Open entwurfssprachlich zusammen:

Ereignisprozedur Report_Open
  Lösche allfällige Tabelle TmpKonkatZOLösungen des letzten Aufrufs
  Erstelle Abfrage QryMusterlösungen mit den Spalten ...
    Fragenschlüssel
    Buchstabenpräfix
    Zahlenpräfix
  Erstelle Tabelle TmpKonkatZOLösungen mit den Spalten ...
    Fragenschlüssel
    konkatLösungen
  Lies erste Zeile (Fragenschlüssel,Buchstabenpräfix,Zahlenpräfix) von QryMusterlösungen 
  Bis QryMusterlösungen fertig
    letzterFragenschlüssel = Fragenschlüssel
    konkatLösungen = konkatLösungen & Buchstabenpräfix & Zahlenpräfix
    Lies nächsten Satz von QryMusterlösungen 
    Solange QryMusterlösungen nicht fertig und letzterFragenschlüssel = Fragenschlüssel
      konkatLösungen = " " & Buchstabenpräfix & Zahlenpräfix
    Erweitere TmpKonkatZOLösungen um die Zeile (Fragenschlüsse,konkatLösungen)